# 定义角色类，包含的属性有名字、武器名称
# 添加自我的介绍的方法
class Role:
    def __init__(self, name, weapon):
        self.name = name
        self.weapon = weapon
    def say(self):
        return f'我是{self.name}，使用的武器是{self.weapon}'
# 定义英雄类，继承角色类；添加自己的属性坐骑
# 添加攻击的方法
class Hero(Role):
    def __init__(self, name, weapon, ride):
        self.ride = ride
        # 调用父类构造方法，继承属性
        Role.__init__(self, name, weapon)
    def attack(self, target):
        return f'{self.name}正在骑着{self.ride}，对{target}近身肉搏'
# 定义法师类，继承角色类
# 添加攻击的方法
class Monk(Role):
    def attack(self, target):
        return f'{self.name}正在使用{self.weapon}对{target}远程攻击'

if __name__ == '__main__':
    # 最后通过子类实例化对象
    h1 = Hero('吕布', '方天画戟', '赤兔马')
    print(h1.say())
    print(h1.attack('貂蝉'))
    m1 = Monk('诸葛亮', '羽扇')
    print(m1.say())
    print(m1.attack('周瑜'))
